Desktop and laptop personal computers are increasingly being used as devices for sound capture in a variety of recording and communication scenarios. Some of these scenarios include recording of meetings and lectures for archival purposes and the capture of speech for voice over Internet protocol (“VOIP”) telephony, video conferencing, and audio/video instant messaging. In these applications, audio input is typically captured using a local microphone. In many cases, such as with laptop computers, the microphone may be built into the computer itself and located very close to a keyboard. This type of configuration is highly vulnerable to environmental noise sources being picked up by the microphone. In particular, this configuration is particularly vulnerable to a specific type of additive noise, that of a user simultaneously using a user input device, such as typing on the keyboard of the computer being used for sound capture.
Continuous typing on a keyboard, mouse clicks, or stylus taps, for instance, produce a sequence of noise-like impulses in the captured audio stream. The presence of this non-stationary, impulsive noise in the captured audio stream can be very unpleasant for a downstream listener. In the past, some attempts have been made to deal with impulsive noise generated by keystrokes. However, these attempts have typically included an attempt to explicitly model the keystroke noise and to remove the keystroke noise from the audio stream. This type of approach presents significant problems, however, because keystroke noise (and other user input noise, for that matter) can be highly variable across different users and across different keyboard devices. Moreover, these previous attempts are computationally expensive, thereby making them unacceptable for use in a real time communication environment where low latency is a primary goal.
It is with respect to these considerations and others that the disclosure made herein is presented.